package com.comac.tasks.manager.app.api;

import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.comac.tasks.manager.app.dto.*;


/**
 * @author wfb
 * 2021年11月3日14:19:48
 */
public interface TasksManagerService {
    /**
     * 保存代办
     *
     * @param tasksManagerDTO
     * @return
     */
    Response insertTasks(TasksManagerDTO tasksManagerDTO);

    /**
     * p批量保存代办
     *
     * @param batchInsertDTO
     * @return
     */
    Response batchInsertTasks(TasksManagerBatchInsertDTO batchInsertDTO);

    /**
     * 保存代办
     *
     * @param upOperatorDTO
     * @return
     */
    Response updateTasks(TasksManagerUpOperatorDTO upOperatorDTO);

    /**
     * 依据 taskInstanceId 更新 应完时间
     * 更新（多个）条目为指定 taskInstanceId 的 应完时间
     *
     * @param dto
     * @return
     */
    Response updateTasksECTime(TasksManagerUpECTimeDTO dto);

    /**
     * 代办列表详情
     *
     * @param detailsQry
     * @return
     */
    SingleResponse<TasksManagerVO> listTasksDetails(TasksManagerDetailsQry detailsQry);

    /**
     * 代办列表查询
     *
     * @param messageQry
     * @return
     */
    PageResponse<TasksManagerVO> listTasks(TasksManagerQry messageQry);


    /**
     * 代办列表查询(我的申请)
     *
     * @param messageQry
     * @return
     */
    PageResponse<TasksManagerVO> listTasksByCreator(TasksManagerQry messageQry);


    /**
     * 状态改变
     *
     * @param tasksManagerUpDTO
     * @return
     */
    Response updateStatus(TasksManagerUpDTO tasksManagerUpDTO);

    /**
     * 状态改变
     *
     * @param tasksManagerDelDTO
     * @return
     */
    Response delete(TasksManagerDelDTO tasksManagerDelDTO);

    Response updateTaskType(TasksManagerUpTaskTypeDTO tasksManagerUpTaskTypeDTO);
}
